#include <stdio.h>

void sort(int size, int nums[size])
{
    for (size_t i = 0; i < size; i++)
    {
        for (size_t z = i + 1; z < size; z++)
        {
            if (nums[i] > nums[z])
            {
                int tep = nums[z];
                nums[z] = nums[i];
                nums[i] = tep;
            }
        }
    }
}

int main(int argc, char *argv[])
{

    int n = 0;
    scanf("%d", &n);
    while (n--)
    {
        int size = 0, i = 0, oindex = 0, jindex = 0;
        scanf("%d", &size);
        
        int allNums[101], oNums[101], jNums[101];
       
        for (i = 0; i < size; i++)
        {
            scanf("%d", &allNums[i]);
        }
        //判断数字的奇偶分别存到数组
        for (i = 0; i < size; i++)
        {
            if (allNums[i] % 2 == 0)
            {
                oNums[oindex++] = allNums[i];
            }
            else
            {
                jNums[jindex++] = allNums[i];
            }
        }

        sort(oindex, oNums);
        sort(jindex, jNums);

        for (i = 0; i < jindex; i++)
        {
            printf("%d ", jNums[i]);
        }

        for (i = 0; i < oindex; i++)
        {
            printf("%d ", oNums[i]);
        }
        printf("\n");
    }

    return 0;
}